The use of Forward Error Correction (FEC) techniques in the design of digital communications and storage systems is well known. FEC is used to find and correct limited errors caused by a transport or storage system in order to ensure the validity of the received message without requiring retransmissions. Some conventional FEC encoding techniques provide data redundancy by adding extra code symbols to a transmitted message which provide the necessary detection and correction information. The number of redundant symbols is determined by the amount and type of error correction required. In general, r redundant symbols per code word are required to detect and correct up to r/2 incorrect symbols.
Since for any given FEC encoder and decoder the number of correctable errors is limited, the introduction of error bursts may cause the number of errors in a code word to be so great so as to be uncorrectable. To prevent such error bursts from causing decoder failure, interleaving techniques may be used to spread the transmission of each code word over a greater time frame such that an error burst will cause a correctable number of errors per code word.
In an environment where a data stream is split up and transmitted via multiple modems in a modem pool to another modem pool, transmitting each code word in a frame via a different modem risks unrecoverable loss of data in the event of a failure of one or more modems even if conventional interleaving techniques are used. Furthermore, error bursts may affect multiple modems at the same time, also resulting in unrecoverable data loss. Interleaving techniques that address both modern failure and cross-modem error bursts in a modem pool environment would therefore be advantageous.